Many different types of software applications can be developed to perform certain functions within companies or other organizations. Companies can develop software applications as products or services offered to customers, and companies can also develop multiple interconnected software applications to provide internal services. Software applications can have different levels of complexity that can drive costs, inefficiencies, or other problems. However, it may be difficult to characterize or evaluate this complexity and to identify how the different aspects of software complexity affect costs, upkeep, user experiences, or other outcomes. Furthermore, the complexity of certain software applications can change over time, making it difficult to monitor the complexity of software applications as they develop and change.